// storage前缀，区分测试和生产环境
const storagePrefix = import.meta.env.VITE_STORAGE_PREFIX;
// 当前是否开发环境
const isDevelopment = import.meta.env.MODE === 'development';

export const storage = {
    /**
     * 设置缓存数据
     * @param {string} name - 缓存名称
     * @param {any} value - 数据
     */
    set: (name, value) => {
        // 解决undefined会被转成字符串存储问题
        if (!value && value != 0) {
            value = '';
        }
        // #ifdef H5
        // 非开发环境，需要加密
        if (!isDevelopment) {
            value = encrypt.aesEncrypt(value);
        }
        // #endif
        return uni.setStorageSync(storagePrefix + name, value);
    },
    /**
     * 读取缓存数据
     * @param {string} name - 缓存名称
     */
    get: (name) => {
        let data = uni.getStorageSync(storagePrefix + name);
        // #ifdef H5
        // 非开发环境，需要解密
        if (!isDevelopment) {
            data = encrypt.aesDecrypt(data);
        }
        // #endif
        return data;
    },
    // 移除缓存
    remove: () => {
        uni.removeStorageSync(storagePrefix + name);
    },
    // 清空缓存
    clear: () => {
        uni.clearStorageSync();
    }
};
